/**
 * 手机号校验
 * @param {string} phone 手机号
 *  * @returns Boolean
 */
export function phoneVerify(phone, title = '手机号有误,请重新输入') {
	if (!(/^1[3456789]\d{9}$/.test(phone))) {
		uni.showToast({
			title,
			icon: 'none',
			duration: 1300
		})
		return false;
	} else {
		return true;
	}
}
/**
 * 邮箱号校验
 * @param {string} email 邮箱号
 * @returns Boolean
 */
export function emailVerify(email, title = '邮箱格式不正确！') {
	var reg = /^[A-Za-z0-9]+([-_.][A-Za-z0-9]+)*@([A-Za-z0-9]+[-.])+[A-Za-z0-9]{2,5}$/;
	var state = reg.test(email); //email是从输入框中读取的值
	if (!state) {
		uni.showToast({
			title,
			icon: 'none',
			duration: 1300
		})
		return false;
	} else {
		return true;
	}
}
/**
 * 银行卡校验
 * @param {string} bank 银行卡号
 */
export function bankVerify(bank) {
	if (!(/^([1-9]{1})(\d{15}|\d{18})$/.test(bank))) {
		uni.showToast({
			title: '银行卡号有误,请重新输入',
			icon: 'none',
			duration: 1300
		})
		return false;
	} else {
		return true;
	}
}
/**
 * 身份证号检验
 * @param {string} card 身份证号
 */
export function idCard(card) {
	if (!(/^(\d{15}$)|(^\d{17}([0-9]|X|x))$/.test(card))) {
		uni.showToast({
			title: '身份证号有误,请重新输入',
			icon: 'none',
			duration: 1300
		})
		return false;
	} else {
		return true;
	}
}
/**
 * 统一社会信用代码校验
 * @param {string} credit 社会信用代码
 */
export function socialCredit(credit) {
	if (!(/^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/.test(credit))) {
		uni.showToast({
			title: '统一社会信用代码有误，请重新输入',
			icon: 'none',
			duration: 1300
		})
		return false;
	} else {
		return true;
	}
}
/**
 * 姓名校验
 * @param {string} name 姓名
 */
export function compellation(name) {
	if (!(/^[\u4E00-\u9FA5]{2,4}$/.test(name))) {
		uni.showToast({
			title: '姓名有误，请重新输入',
			icon: 'none',
			duration: 1300
		})
		return false;
	} else {
		return true;
	}
}
/**
 * 遍历对象中是否有空值
 * @param {object} form 验证的对象
 * @param {object} rules 需要验证的具体属性及提示内容
 * @param {object} isToast 是否提示
 */
export function objVerify(form, rules, isToast = true) {
	let bool = true
	try {
		Object.keys(rules).forEach(v => {
			if (typeof rules[v] === 'object') {
				bool = objVerify(form[v], rules[v], isToast)
			} else if (!form[v] && form[v] !== 0) {
				if (isToast) {
					uni.showToast({
						title: rules[v],
						icon: "none"
					})
				}
				throw v
			}
		})

	} catch (e) {
		console.warn(e)
		bool = false
	}
	return bool
}
/**
 * 验证十进制数字
 */
export function isNumber(value) {
	return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value)
}
/**
 * @description 添加单位，如果有rpx，upx，%，px等单位结尾或者值为auto，直接返回，否则加上px单位结尾
 * @param {string|number} value 需要添加单位的值
 * @param {string} unit 添加的单位名 比如px
 */
export function addUnit(value = 'auto', unit = 'px') {
	value = String(value)
	// 用uView内置验证规则中的number判断是否为数值
	return isNumber(value) ? `${value}${unit}` : value
}